<?php


namespace app\admin\service;

use app\common\cache\AdminAuthCache;
use tmcore\base\BaseService;
use tmcore\utils\Helper;

/**
 * 管理端权限服务类
 */
class AdminMenuService extends BaseService
{

    /**
     * 当前访问地址路由检验
     * @param string $url 访问地址
     * @param array $adminInfo 管理员信息
     * @return bool
     */
    public function checkAuthRoute($url, $adminInfo) {

        // 超级管理员，无需验证
        if($adminInfo['root'] == 1) return true;

        $adminAuthCache = new AdminAuthCache($adminInfo['id']);

        // 全部路由权限
        $allRoute = Helper::formatUrl($adminAuthCache->getAuthAllRoute());
        // 判断该当前访问地址是否在权限路由中，不存在无需验证
        if(!in_array($url, $allRoute)) return true;

        // 当前管理员拥有的路由权限
        $userRoute = Helper::formatUrl($adminAuthCache->getAuthUserRoute($adminInfo['role_id']));
        // 检验是否包含路由权限
        if (in_array($url, $userRoute)) return true;

        return false;
    }
}